home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 November / Macworld (1999-11).dmg / Updaters / WhiteCap 3.0.4 / WhiteCap Source.sit / WhiteCap Source / Common / io / CEgErr.cpp next >
Text File  |  1999-07-13  |  3KB  |  204 lines

  1.  
  2. #include "CEgErr.h"
  3.  
  4. #include "CStrNode.h"
  5.  
  6.  
  7.  
  8. CEgErr::CEgErr( long inErr ) :
  9.     mOSErr( 0 ),
  10.     mErr( inErr ) {
  11.  
  12. }
  13.  
  14.                     
  15.  
  16. bool     CEgErr::noErr() {
  17.     return getErr() == cNoErr;
  18. }
  19.  
  20.  
  21.  
  22. long CEgErr::getErr() {
  23.     return mErr;
  24. }
  25.  
  26.  
  27.  
  28. void CEgErr::throwErr( long inErr ) {
  29.  
  30.     if ( noErr() || inErr == cNoErr ) {
  31.         mErr = inErr;
  32.     }
  33. }
  34.  
  35.  
  36.  
  37.  
  38.  
  39. void CEgErr::GetErrStr( UtilStr& outStr ) {
  40.     long err;
  41.     bool handled = false;
  42.     
  43.     if ( mOSErr ) {
  44.         err = mOSErr;  
  45.         OSErrMsg( outStr ); }
  46.     else {
  47.         err = getErr();
  48.         switch ( err ) {
  49.  
  50.             case cNoErr:
  51.                 outStr.Append( "No error." );
  52.                 break;
  53.  
  54.             case cBadPLVersion:
  55.             case cBadExamVersion:
  56.                 outStr.Append( "This file was made with a different version of Examgen or is damaged and cannot be opened." );
  57.                 break;                
  58.                 
  59.             case cCorrupted:
  60.                 outStr.Append( "This file appears to be corrupt." );
  61.                 break;
  62.                 
  63.             case cFileNotFound:
  64.                 outStr.Append( "File not found." );
  65.                 break;
  66.                 
  67.             case cEOFErr:
  68.                 outStr.Append( "End of file reached." );
  69.                 break;
  70.                 
  71.             case cEOSErr:
  72.                 outStr.Append( "End of file/stream reached." );
  73.                 break;
  74.                 
  75.             case cBitmapCorrupted:
  76.                 outStr.Append( "The bitmap information is corrupt." );
  77.                 break;
  78.                 
  79.             case cBitmapTooDeep:
  80.                 outStr.Append( "The bitmap must be 256 or less colors." );
  81.                 break;
  82.  
  83.             case cBitmapNotMono:
  84.                 outStr.Append( "The bitmap must be monochrome." );
  85.                 break;
  86.                 
  87.             case cBadBitmapType:
  88.                 outStr.Append( "The file is not a BMP file." );
  89.                 break;            
  90.             
  91.             case cRLENotSupported:
  92.                 outStr.Append( "Compressed BMPs are not supported." );
  93.                 break;    
  94.                 
  95.             default:
  96.                 outStr.Append( "Internal error." );
  97.                 break;
  98.         }
  99.     }
  100.     
  101.     outStr.Append( " (" );
  102.     outStr.Append( err );
  103.     outStr.Append( ')' );
  104. }
  105.  
  106.  
  107.  
  108.  
  109. #ifdef EG_MAC
  110. #include <Errors.h>
  111. #endif
  112.     
  113. void CEgErr::OSErrMsg( UtilStr& ioStr ) {
  114.  
  115.  
  116.     switch ( mOSErr ) {
  117.         
  118.         #ifdef EG_MAC
  119.         case ioErr:
  120.             ioStr.Append( "I/O Error" );
  121.             break;
  122.             
  123.         case fnfErr:
  124.             ioStr.Append( "File not found" );
  125.             break;
  126.             
  127.         case opWrErr:
  128.             ioStr.Append( "File is in use" );
  129.             break;
  130.                 
  131.         case fLckdErr:
  132.         case permErr:
  133.             ioStr.Append( "File is locked" );
  134.             break;
  135.             
  136.         case vLckdErr:
  137.         case wPrErr:
  138.             ioStr.Append( "Disk is write protected" );
  139.             break;
  140.             
  141.         case wrPermErr:
  142.             ioStr.Append( "File does not allow writing" );
  143.             break;
  144.             
  145.         case dskFulErr:
  146.             ioStr.Append( "Disk full" );
  147.             break;
  148.         #endif
  149.         
  150.         #ifdef EG_WIN
  151.         #include "winerror.h"
  152.             
  153.         case ERROR_FILE_NOT_FOUND:
  154.             ioStr.Append( "File not found" );
  155.             break;
  156.             
  157.         case ERROR_PATH_NOT_FOUND:
  158.             ioStr.Append( "Path not found" );
  159.             break;
  160.             
  161.         case ERROR_ACCESS_DENIED:
  162.             ioStr.Append( "Access denied" );
  163.             break;
  164.                 
  165.         case ERROR_NOT_ENOUGH_MEMORY:
  166.             ioStr.Append( "Not enough memory" );
  167.             break;
  168.             
  169.         case ERROR_INVALID_BLOCK:
  170.             ioStr.Append( "Invalid block" );
  171.             break;
  172.             
  173.         case ERROR_INVALID_ACCESS:
  174.             ioStr.Append( "File not found" );
  175.             break;
  176.             
  177.         case ERROR_OUTOFMEMORY:
  178.         case ERROR_NO_MORE_FILES:
  179.         case ERROR_HANDLE_DISK_FULL:
  180.             ioStr.Append( "Disk Full" );
  181.             break;
  182.             
  183.         case ERROR_WRITE_PROTECT:
  184.             ioStr.Append( "Disk is write protected" );
  185.             break;
  186.                 
  187.         case ERROR_NOT_READY:
  188.             ioStr.Append( "Disk not ready" );
  189.             break;
  190.             
  191.         case ERROR_DUP_NAME:
  192.             ioStr.Append( "Duplicate name" );
  193.             break;
  194.         #endif
  195.         
  196.         default:
  197.             ioStr.Append( "OS Error" );
  198.     
  199.     }
  200.  
  201. }
  202.  
  203.  
  204.